SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TDMOVI_BANC_I04]  
/*-------------------------------------------------------*/  
/*---Empresa              : OFISIS S.A.                --*/  
/*---Cliente              : OFISIS                     --*/  
/*---Sistema              : Tesoreria                  --*/  
/*---Mödulo               : Empresa                    --*/  
/*---Programa             : Inserta Distribuci½n y     --*/  
/*---                       update Cabecera si es dif. --*/  
/*---                       Movimiento Bancos          --*/  
/*---                       (Ingresos)                 --*/    
/*---Script               : tdbanc_p.sql               --*/  
/*---Nombre SP            : SP_TDMOVI_BANC_I04         --*/  
/*---Desarrollado por     : Ernesto G½mez T.           --*/  
/*---Fecha Creaciön       : 02/02/2004                 --*/  
/*---Base Datos           : Microsoft Sql Server       --*/  
/*---Versiön              : 7.0                        --*/  
/*---Invoca a SP          :                            --*/  
/*-------------------------------------------------------*/  
  
/*-------------------------------------------------------*/  
/*---Modificado 1 por     : Carlos Marquez Escobar     --*/  
/*---Fecha Modificaciön   : 02/07/2004                 --*/   
/*---Detalle Modificaciön : Fecha para Documentos      --*/  
/*-------------------------------------------------------*/  
/*-------------------------------------------------------*/  
/*---Modificado 2 por     : Maribel Julca Rodriguez      --*/  
/*---Fecha Modificaci©n   : 20/04/2005                   --*/   
/*---Detalle Modificaci©n : ingreso de los campos CO_USUA_CREA Y CO_USUA_MODI                           --*/  
/*-------------------------------------------------------*/  

/*-------------------------------------------------------*/  
/*---Comentarios                                       --*/  
/*---                                                  --*/  
/*---                                                  --*/  
/*-------------------------------------------------------*/  
/*-------------------------------------------------------*/  
/*--- Drop Proc SP_TDMOVI_BANC_I04                      --*/  
/*--- Grant all on SP_TDMOVI_BANC_I04 to public         --*/   
/*--- SP_TDMOVI_BANC_I04 '01', 'OFISIS', 'CON', '191-00000-01',  
'2004', '02','I','00100041', 1, '96351', 'A', 'K', 'A0202',   
'001', 'M', 500000, 500000,   
'FAC', '010101', '2004-05-05', 'U'  
             --*/  
/*-------------------------------------------------------*/  
  
@ISCO_EMPR  TD_VC_002,   
@ISCO_USUA_MODI  TD_VC_008_USUA,  
@ISCO_BANC  TD_VC_003,  
@ISNU_CNTA_BANC  TD_VC_020,  
@ISAA_BNCO  TD_VC_004,  
@ISMM_BNCO  TD_VC_002,  
@ISTI_MOVI_BANC  TD_VC_001,  
@ISNU_COMP_BANC  TD_VC_008,   
@INNU_SECU  TD_IN_001,  
@ISCO_CNTA_EMPR  TD_VC_020,  
@ISTI_MOVI  TD_VC_001,  
@ISCO_TIPO_AUXI  TD_VC_001,  
@ISCO_AUXI_EMPR  TD_VC_020,  
@ISCO_ORDE_SERV  TD_VC_020,  
@ISST_DIST  TD_VC_001,  
@INPO_DIST  TD_NU_016_004,  
@INIM_DIST  TD_NU_016_004,  
@ISTI_DOCU  TD_VC_003,  
@ISNU_DOCU  TD_VC_020,  
@IDFE_DOCU  TD_DT_001,  
@ISTI_TIPO  TD_VC_001,  
@ISDE_OBSE  TD_VC_100,
@ISCO_UNID_CNTB TD_VC_003
	As
Declare   
@VNIM_MOVI_ANTE  TD_NU_016_004,    
@VNIM_DIST       TD_NU_016_004,  
@VNNU_SECU       TD_IN_001  
  
Begin Tran SP_TDMOVI_BANC_I04  
  
   
 If @ISTI_TIPO = 'I'  
   
  Insert Into TDBANC_DIST (CO_EMPR, CO_USUA_CREA, FE_USUA_CREA,CO_USUA_MODI, FE_USUA_MODI,   
  CO_BANC, NU_CNTA_BANC, AA_BNCO, MM_BNCO,  
  TI_MOVI_BANC, NU_COMP_BANC, NU_SECU, CO_CNTA_EMPR,  
  TI_MOVI, CO_TIPO_AUXI, CO_AUXI_EMPR, CO_ORDE_SERV,  
  ST_DIST, PO_DIST, IM_DIST, TI_DOCU, NU_DOCU, FE_DOCU, DE_OBSE, CO_UNID_CONC)  
  Values  ( @ISCO_EMPR, @ISCO_USUA_MODI, GETDATE(),@ISCO_USUA_MODI, getdate(),  
  @ISCO_BANC, @ISNU_CNTA_BANC,  
  @ISAA_BNCO, @ISMM_BNCO, @ISTI_MOVI_BANC,  
  @ISNU_COMP_BANC, @INNU_SECU,  
  @ISCO_CNTA_EMPR, @ISTI_MOVI,  
  @ISCO_TIPO_AUXI, @ISCO_AUXI_EMPR,  
  @ISCO_ORDE_SERV, @ISST_DIST,  
  @INPO_DIST, @INIM_DIST, @ISTI_DOCU,  
  @ISNU_DOCU, @IDFE_DOCU, @ISDE_OBSE, @ISCO_UNID_CNTB)
  If @@error <> 0  
  Begin  
   Rollback tran SP_TDMOVI_BANC_I04  
   Return  
  End      
   
 If @ISTI_TIPO = 'U'  
  
   IF @INNU_SECU IS NULL  
   Begin  
   Select @VNNU_SECU   = NU_SECU  
   From   TDBANC_DIST  
   Where  CO_EMPR = @ISCO_EMPR  
   and    CO_UNID_CONC = @ISCO_UNID_CNTB
   and    CO_BANC = @ISCO_BANC  
   and    NU_CNTA_BANC = @ISNU_CNTA_BANC  
   and    AA_BNCO = @ISAA_BNCO  
   and    MM_BNCO = @ISMM_BNCO   
   and    TI_MOVI_BANC = @ISTI_MOVI_BANC  
   and    NU_COMP_BANC = @ISNU_COMP_BANC  
     
   If @VNNU_SECU > 0  
      Select @VNNU_SECU = @VNNU_SECU + 1  
   Else  
      Select @VNNU_SECU = 1     
  
  
  
   Insert Into TDBANC_DIST (CO_EMPR, CO_USUA_CREA, FE_USUA_CREA,CO_USUA_MODI, FE_USUA_MODI,
   CO_BANC, NU_CNTA_BANC, AA_BNCO, MM_BNCO,  
   TI_MOVI_BANC, NU_COMP_BANC, NU_SECU, CO_CNTA_EMPR,  
   TI_MOVI, CO_TIPO_AUXI, CO_AUXI_EMPR, CO_ORDE_SERV,  
   ST_DIST, PO_DIST, IM_DIST, TI_DOCU, NU_DOCU, FE_DOCU, DE_OBSE, CO_UNID_CONC)  
   Values  ( @ISCO_EMPR, @ISCO_USUA_MODI, GETDATE(),@ISCO_USUA_MODI, GETDATE(),  
   @ISCO_BANC, @ISNU_CNTA_BANC,  
   @ISAA_BNCO, @ISMM_BNCO, @ISTI_MOVI_BANC,  
   @ISNU_COMP_BANC, @VNNU_SECU,  
   @ISCO_CNTA_EMPR, @ISTI_MOVI,  
   @ISCO_TIPO_AUXI, @ISCO_AUXI_EMPR,  
   @ISCO_ORDE_SERV, @ISST_DIST,  
   @INPO_DIST, @INIM_DIST, @ISTI_DOCU,  
   @ISNU_DOCU, @IDFE_DOCU, @ISDE_OBSE, @ISCO_UNID_CNTB)
   If @@error <> 0  
   Begin  
    Rollback tran SP_TDMOVI_BANC_I04  
    Return  
   End      
  
                  End  
                Else   
   Update  TDBANC_DIST  
   Set CO_CNTA_EMPR = @ISCO_CNTA_EMPR,  
   TI_MOVI = @ISTI_MOVI,  
   CO_TIPO_AUXI = @ISCO_TIPO_AUXI,  
   CO_AUXI_EMPR = @ISCO_AUXI_EMPR,  
   CO_ORDE_SERV = @ISCO_ORDE_SERV,  
   TI_DOCU = @ISTI_DOCU,  
   NU_DOCU = @ISNU_DOCU,  
   FE_DOCU = @IDFE_DOCU,  
   ST_DIST = @ISST_DIST,  
   PO_DIST = @INPO_DIST,  
   IM_DIST = @INIM_DIST,  
   DE_OBSE = @ISDE_OBSE,  
   CO_USUA_MODI = @ISCO_USUA_MODI,  
   FE_USUA_MODI =  getdate()  
   Where CO_EMPR = @ISCO_EMPR  
   And CO_UNID_CONC = @ISCO_UNID_CNTB
   And CO_BANC = @ISCO_BANC  
   And NU_CNTA_BANC = @ISNU_CNTA_BANC  
   And AA_BNCO =  @ISAA_BNCO  
   And MM_BNCO =  @ISMM_BNCO  
   And TI_MOVI_BANC = @ISTI_MOVI_BANC  
   And NU_COMP_BANC = @ISNU_COMP_BANC  
   And NU_SECU = @INNU_SECU  
   If @@error <> 0  
    Begin  
    Rollback tran SP_TDMOVI_BANC_I04  
    Return  
   End      
   
 If @ISTI_TIPO = 'D'  
   
  Delete TDBANC_DIST  
  Where CO_EMPR = @ISCO_EMPR  
  And CO_UNID_CONC = @ISCO_UNID_CNTB
  And CO_BANC = @ISCO_BANC  
  And NU_CNTA_BANC = @ISNU_CNTA_BANC  
  And AA_BNCO =  @ISAA_BNCO  
  And MM_BNCO =  @ISMM_BNCO  
  And TI_MOVI_BANC = @ISTI_MOVI_BANC  
  And NU_COMP_BANC = @ISNU_COMP_BANC  
  And NU_SECU = @INNU_SECU  
    
  If @@error <> 0  
   Begin  
   Rollback tran SP_TDMOVI_BANC_I04  
   Return  
  End      
  
  Select @VNIM_MOVI_ANTE  = Round(Isnull(IM_MOVI,0),2)  
  From   TCMOVI_BANC  
  Where  CO_EMPR = @ISCO_EMPR  
  And    CO_UNID_CONC = @ISCO_UNID_CNTB
  And    CO_BANC = @ISCO_BANC   
  And    NU_CNTA_BANC = @ISNU_CNTA_BANC    
  And    AA_BNCO = @ISAA_BNCO  
  And    MM_BNCO = @ISMM_BNCO   
  And    TI_MOVI_BANC = @ISTI_MOVI_BANC  
  And    NU_COMP_BANC = @ISNU_COMP_BANC   
   
   
 If  @ISTI_MOVI_BANC = 'I'  
  Select @VNIM_DIST = Round(Sum(Case When TI_MOVI = 'C' Then (-1)*IsNull(IM_DIST,0) ELSE IsNull(IM_DIST,0) End),2)  
  From  TDBANC_DIST  
  Where CO_EMPR = @ISCO_EMPR   
  And   CO_UNID_CONC = @ISCO_UNID_CNTB
  And   CO_BANC = @ISCO_BANC   
  And   NU_CNTA_BANC = @ISNU_CNTA_BANC   
  And   AA_BNCO = @ISAA_BNCO  
  And   MM_BNCO = @ISMM_BNCO   
  And   TI_MOVI_BANC = @ISTI_MOVI_BANC   
  And   NU_COMP_BANC = @ISNU_COMP_BANC   
   
 Else If @ISTI_MOVI_BANC = 'E'  
  Select @VNIM_DIST = Round(Sum(Case When TI_MOVI = 'A' Then (-1)*IsNull(IM_DIST,0) ELSE IsNull(IM_DIST,0) End),2)  
  From  TDBANC_DIST  
  Where CO_EMPR = @ISCO_EMPR   
  And   CO_UNID_CONC = @ISCO_UNID_CNTB
  And   CO_BANC = @ISCO_BANC   
  And   NU_CNTA_BANC = @ISNU_CNTA_BANC   
  And   AA_BNCO = @ISAA_BNCO  
  And   MM_BNCO = @ISMM_BNCO   
  And   TI_MOVI_BANC = @ISTI_MOVI_BANC   
  And   NU_COMP_BANC = @ISNU_COMP_BANC   
   
 Update TCMOVI_BANC  
 Set IM_MOVI = Round(IsNull(@VNIM_DIST,0),2),  
     CO_USUA_MODI = @ISCO_USUA_MODI,   
     FE_USUA_MODI = getdate()  
 Where CO_EMPR = @ISCO_EMPR   
 And   CO_UNID_CONC = @ISCO_UNID_CNTB
 And   CO_BANC = @ISCO_BANC   
 And   NU_CNTA_BANC = @ISNU_CNTA_BANC   
 And   AA_BNCO = @ISAA_BNCO  
 And   MM_BNCO = @ISMM_BNCO   
 And   TI_MOVI_BANC = @ISTI_MOVI_BANC   
 And   NU_COMP_BANC = @ISNU_COMP_BANC   
   
 If @@error <> 0  
 Begin  
  Rollback tran SP_TDMOVI_BANC_I04  
  Return  
 End    
commit tran SP_TDMOVI_BANC_I04  
  
/*------------------------ Fin ------------------------------*/


GO
